package Semester_3.src.Util_4;//通过自定义的类实现Servlet接口并重写接口中的所有抽象方法的方式,创建一个Servlet实现类
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
//import java.io.Serial;
@WebServlet(name = "Demo",value = "/Demo")
public class Demo implements Servlet {
    //初始化方法：在Servlet第一次被访问时调用一次，且一个Servlet只会调用一次方法
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init方法被调用了~");
    }
    //处理请求方法：每次当客户端发送请求的时候就会被调用一次，可以被调用多次，最简单的具体体现就是在浏览器多次刷新的时候会多次在控制台上输出语句
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service方法被调用了~");

    }
    //释放资源方法：当服务器被关闭，或者释放资源的时候就会被调用一个，只会在关闭服务器的时候才会被调用一次
    public void destroy() {
        System.out.println("destroy方法被调用了~");
    }


    //获取Servlet信息,一般是比如作者,版权,版本号之类的.默认情况下会返回一个空值,返回一个空字符串也可以
    public String getServletInfo() {
        return null;
    }
    //获取ServletConfig对象,用来获取Servlet的配置文件信息
    //由于这个方法的返回值是一个ServletConfig对象,这个对象无法通过new关键字创建,所以由这个方法返回一个对象
    //并且由于init()方法需要一个ServletConfig对象作为参数,就可以用该方法返回一个对象作为参数
    //当需要在其他地方使用方法内的局部变量的时候,只需要创建一个同类型的成员变量,并在方法中将局部变量的值赋值给成员变量,就可以间接的使用这个方法的局部变量了
    public ServletConfig getServletConfig() {
        return null;
    }
    //HTTPServlet原理，是定义了一个类去具体的实现Servlet接口，并将接口中的service方法根据不同的相应方式做出不同的逻辑处理请求
    //而HTTPServlet类就是将方法进行了封装，之后如果有需要进行相应的请求只需要继承这个类并实现内部的具体的某一个方法即可
}
